@file:Suppress("unused")

package com.hjh.tool.util

import android.os.Build
import java.text.SimpleDateFormat
import java.time.LocalDateTime
import java.time.format.DateTimeFormatter
import java.util.Calendar
import java.util.Date
import java.util.Locale
import java.util.TimeZone
import kotlin.apply
import kotlin.collections.map
import kotlin.collections.reversed
import kotlin.let
import kotlin.ranges.until

/**
 * @author： hjh
 * @createDate： 2024/11/28 18:33
 * @description：
 * @qq： 3472903821
 * @version: 1.0
 */
object MyTimeUtil {

    // 获取当前时间的方法
    fun getCurrentTime(pattern: String = "yyyy-MM-dd HH:mm:ss"): String {
        // 获取当前时间
        return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            DateTimeFormatter
                .ofPattern(pattern)
                .format(LocalDateTime.now())
        } else {
            val dateFormat = SimpleDateFormat(pattern, Locale.getDefault()).apply {
                // 保持与之前 ThreadLocal 示例中时区设置的一致性
                timeZone = TimeZone.getDefault()
            }

            // 获取当前日期和时间
            val currentTime = Date()

            // 格式化日期和时间并返回
            dateFormat.format(currentTime)
        }
    }

    /**
     * 返回最近 7 天的日期字符串列
     */
    @Synchronized
    fun getLastSevenDays(): List<String> {
        val dateFormat = SimpleDateFormat("MM-dd", Locale.getDefault())
        return (0 until 7).map { offset ->
            Calendar.getInstance().apply {
                add(Calendar.DAY_OF_YEAR, -offset)
            }.time.let { dateFormat.format(it) }
        }.reversed() // 确保日期从过去到今天按顺序排列
    }
}